fix: add solc artifacts to known contracts for traces #572
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
In zksync context, the traces cannot decode contracts via EVM bytecode as we only pass zksolc artifacts to
known_contracts
.Additionally, invariant tests do not work with
testContract
as during the test, they perform the lookup on the target address and try to match it with a known contract to obtain the ABI for invariant testing. This being an EVM bytecode, the test always fails as we do not know of any solc artifacts withinknown_contracts
.Solution
Append solc artifacts to
known_contracts
. This is supported by the argument that in zksync context we are always aware of solc artifacts as we use them to translate bytecodes between VMs.This therefore fixes the decode problem: